Embodiments of the present inventive subject matter relate generally to controlling a multipath. More particularly, embodiments of the present inventive subject matter relate to controlling a multipath in a serial attached SCSI (SAS) network.
Many storage networks have a multipath configuration which is a redundant configuration having duplicate paths from a host to one or more storage devices. For example, in a multipath configuration in a SAS storage network, a host has two SAS initiator ports, a storage device has two SAS target ports, and two redundant SAS links from the two SAS target ports of the storage device are connected to the SAS initiator ports of the host, respectively. The multipath configuration allows each of the SAS initiator ports to access a corresponding one of the SAS target ports. Even though a failure occurs on one path, this multipath configuration enables the host to access the storage device through the other path. Thus, a multipath configuration enhances the availability of the storage device.
However, the building-up of such a multipath configuration alone makes a single storage device appear as different storage devices to the host. In addition, when a failure occurs on one path, conventional multipath configurations do not allow automatic switch-over between paths.
To address these shortcomings of conventional multipath configurations, software for controlling the multipath (hereinafter, referred to as a “multipath driver”) is generally installed on a host. The multipath driver controls the number of storage devices recognized or “seen” by the host, detects a failure on a path, and performs a switch-over between paths at the time the failure is detected. In other words, the multipath driver makes the multipath transparent to applications of the host.
In existing multipath configuration systems including multipath drivers however, it is necessary to install different multipath drivers depending on interfaces used in the storage network. Furthermore, even if a common interface is used in the entire storage network, it is necessary to install different multipath drivers on hosts in a case where the hosts have different operating systems (OSs), a case where storage products or switching products of different vendors are connected to the hosts, or in other similar cases where differences exist between components of the storage network. For at least this reason, introduction of a multipath configuration is troublesome. Moreover, some combinations of multipath drivers are known to cause unexpected operations or storage network failures. Consequently, careful combination and verification work needs to be performed prior to the start of current multipath storage network operation.